//  I2C .
#include <Wire.h>
//   .
#include IRremote.h
//   .
#include motor.h
//   .
#include gyro_acsel.h
//   IR-.
int RECV_PIN = A1;
//  IR-.
84
IRrecv irrecv(RECV_PIN);
//   IR-.
decode_results results;
//========================================
//     :
#define STR_FORWARD 0x511DBB
#define STR_LEFT 0x52A3D41F
#define STR_RIGHT 0x20FE4DBB
#define STR_DOWN 0xA3C8EDDB
#define BUTTON_OK 0xD7E84B1B
#define BUTTON_1 0xC101E57B
#define BUTTON_2 0x97483BFB
#define BUTTON_3 0xF0C41643
#define BUTTON_4 0x9716BE3F
#define BUTTON_5 0x3D9AE3F7
#define BUTTON_6 0x6182021B
#define BUTTON_7 0x8C22657B
#define BUTTON_8 0x488F3CBB
#define BUTTON_9 0x449E79F
#define BUTTON_0 0x1BC0157B
#define BUTTON_STAR 0x32C6FDF7
#define BUTTON_ARRAY 0x3EC3FC1B
//========================================
void setup()
{
Serial.begin(9600);
// .
giroscop_setup();
//     () Arduino.
//      .
setup_motor_system(3, 4, 11, 7, 8, 10);
_stop(); // .
//  IR-.
//    .
delay(1000);
//     .
Calc_CompensatorZ(3000);
//  IR-.
irrecv.enableIRIn();
Serial.print( Start );
Ang_ = 0;
_stop(); // .
setspeed(255, 255);
}
//=====================================
//  .
void loop()
{
while (true)
{
// delay(30000);
if (irrecv.decode(&results))
{
switch (results.value) {
case STR_FORWARD:
//   5  (5 000 000 )
forward_t(5000000);
break;
case STR_LEFT:
//    5  ()
Angle(5);
break;
case STR_RIGHT:
//    5  ()
Angle(-5);
break;
case STR_DOWN:
//   5  (5 000 000 )
backward_t(5000000);
break;
case BUTTON_OK:
//   10 
Angle_t(10000000);
break;
case BUTTON_1:
//    10 
Angle(10);
break;
case BUTTON_2:
//    90 
Angle(-90);
break;
case BUTTON_3:
//    10 
Angle(-10);
break;
case BUTTON_4:
//    20 
Angle(20);
break;
case BUTTON_5:
//    180 
Angle(180);
break;
case BUTTON_6:
//    20 
Angle(-20);
break;
case BUTTON_7:
//    60 
Angle(60);
break;
case BUTTON_8:
//    90 
Angle(90);
break;
case BUTTON_9:
//    60 
Angle(-60);
break;
case BUTTON_0:
//   2 
backward_t(2000000);
break;
case BUTTON_STAR:
//  10 
Angle_t(10000000);
break;
case BUTTON_ARRAY:
//  5 
Angle_t(5000000);
break;
}
irrecv.resume();
}
time_gyro(10);
}
}